package com.okbihuo.perm.component.file.service;


import com.okbihuo.perm.component.file.domain.ComFile;
import com.okbihuo.perm.core.mp.base.MyService;

import java.time.LocalDateTime;

/**
 * 文件接口
 * @author stt
 */
public interface ComFileService extends MyService<ComFile> {
    /**
     * 通过md5查询文件记录
     * @param md5 唯一标识码
     * @return 文件记录
     */
    ComFile getOneByMd5(String md5);

    /**
     * 当md5与数据原有一致的，不再新增内容，而是复制原内容数据至新的
     */
    void pointToExist(ComFile newFile, ComFile existFile);

    /**
     * 计算文件内容的被引用次数
     * @param storeType 相同文件类型才算数
     * @param location 文件地址相同，说明文件内容相同
     * @return 被引用的次数
     */
    int countByFileContent(String storeType, String location);

    /**
     * 修改文件超期时间
     * @param id
     * @param time
     * @return
     */
    boolean updateExpiresAt(Integer id, LocalDateTime time);
}
